///////////////////////////////////////////////////////////////////////////////
//
// lighthouse3D - 3D Software Library
//
// File: CTGAFileHandler.h
//
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2003-2013 Marcus Reinhardt
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
///////////////////////////////////////////////////////////////////////////////
//
// You can find a copy of the GNU General Public License (gpl.txt) in the
// directory of the library.
//
///////////////////////////////////////////////////////////////////////////////

#ifndef _CTGAFileHandler_H_
#define _CTGAFileHandler_H_

#include "CBasicClasses.h"
#include <string>
#include <stdio.h>
#include <fstream>


///////////////////////////////////////////////////////////////////////////////
// class CTGAFileHandler : A class to open TARGA files (*.tga)
///////////////////////////////////////////////////////////////////////////////

//! TGA File Header Description
struct TTGAHeader 
{
	unsigned char imageId;
	unsigned char colorMapType;
	unsigned char imageType;
	unsigned char ignoredData2[9];
	unsigned char widthLo;
	unsigned char widthHi;
	unsigned char heightLo;
	unsigned char heightHi;
	unsigned char BPP;
	unsigned char descriptor;
};

//! A class to import TARGA files (*.tga)

class CTGAFileHandler
{

public:

    CTGAFileHandler();
    ~CTGAFileHandler();
    
    bool loadTGAFile(const char *fname);
    bool saveTGAFile(const char *fname, TPictureData *p);

	TRGBColorTriple getRGBColor(unsigned int c);

    TPictureData *getPicDataHandle() { return &picData; };

private:

    TPictureData picData;

};

#endif
